T - test : 대한민국 2030남성의 평균 키를 175cm라고 할 수 있을까?

개요

통계 초보자도 알기 쉽게 단일표본 t-test에 대해 설명하고

육군 신체측정 데이터를 활용해서

t-test를 직접 실행해 보겠다.


들어가기에 앞서

여러분들은 t-test를 들어보셨는가,

처음 들어보는 사람이라면 환영한다.(t-test를 나의 글로 알게 된걸 축하한다.)


t- test는 검증하고자 하는 데이터에 따라 세 가지의 종류로 나뉜다.

  1. 단일표본 t-test
  2. 독립표본 t-test
  3. 대응표본 t-test


벌써부터 표본, 독립, 대응 등 어려운 말들이 나온다고 해서 기죽지 말자

오늘은 단일표본 t-test만 살펴 볼 것이다.

그전에 참고로 작성자 입장에서 최대한 쉽게 설명하기위해

최소한의 수식만을 썼다.

또 풀어 설명하다보니 오류가 있을 수 도 있다.

오류나 이해안되는 점 등이 있다면 댓글로 지적해 주시면 감사하겠다.


들어가며

한동안 Hot 했던 곰표 밀 맥주

' 500ml 한 캔 이라는데 왜 내가 마실 때 마다 얼마 없는 것 같지? 500ml 아닌거 아냐?! '

곰표 맥주를 마실 때 마다 이러한 생각을 한다면...

이런 분을 위해 준비했다.

단일표본 t-test

단일표본 이라는 뜻은 보고자 하는 집단이 하나라는 뜻이다. (여기서는 곰표 밀 맥주 캔 집단)


목차

시작


모집단, 표본


분산, 표준편차


만족해야하는 조건


조건 확인


t-test설명


t-test 적용


부록


시작

시작

1 ) t-test

t-test는 모집단의 분산이나 표준편차를 알지 못할 때

모집단을 대표하는 표본으로부터 추정된 분산이나 표준편차를 가지고 검정하는 방법이다.

(교육평가용어사전,2004,학지사)

2 ) 단일표본 t-test

모집단의 분산과 표준편차를 알지 못하는 상황에서,

모집단으로부터 추출한 표본의 평균을

연구자가 이론적 또는 경험적 근거에 의해 설정한 특정한 수와 비교하여 검정한다.

(네이버 두산백과)

위의 인용구들은 각각 t-test와 단일표본 t-test에 대한 내용이다.

위 내용이 어렵게 느껴진다면 당신은 정상이다.(이해해도 정상이다.)


위 내용이 어려운 당신을 위해 설명 해 주겠다.

단일표본 t-test는 결국 표본 ( 내가 한달 동안 확인한 곰표 맥주 캔 용량 데이터 ) 을 통해서

모집단 ( 생산된 전체 곰표 맥주 용량 ) 을 가정하고 모집단의 평균을 설정한 값 ( 500ml ) 과 비교하는것이다.


그렇다면 모집단의 분산? 모집단의 표준편차는 무엇일까?


모집단, 표본

모집단, 표본

모집단이라는 것은 우리가 알고자 하는 집단의 전체라고 볼 수 있다.

예를 들어 대한민국 국민의 근로시간 평균을 알고싶다면

대한민국 국민 집단을 대상으로 조사를 해야하는데

모집단은 여기서 대한민국 국민 전체라고 할 수 있다.

하지만 국민 전체를 일일이 조사해서 평균을 내는 것에는 많은 비용이든다(시간, 돈)

그렇기 때문에 그 중 일부를 추출하는데 이것을 표본 이라고 한다.

아래는 16만개의 표본...


분산, 표준편차

분산, 표준편차

분산표준편차라는 것은 의미가 비슷하다.

이제부터 사람의 키로 설명하겠다.

분산은 집단에서 평균으로부터 데이터가 퍼져있는 정도를 의미하는 척도이다.

평균(데이터의 대표값 중 하나) 에서 퍼져있는 정도를 측정하여 얼마나 중구난방인가를 본다.

나는 육군 신체 측정 데이터를 표본으로 삼았기 때문에 이 표본의 분산을 구할 수 있다.

def check_var(data):
    numerator = ((data.values - daata.mean())**2).sum()
    denominator = len(data)
    var = numerator/denominator
    return var

분산은 평균에서 각 데이터 값을 빼고 ( 평균과의 거리 )

나온 값을 제곱하여 더한다.

그런 다음 데이터의 개수만큼 나눠 주면 구할 수 있다. ( 여러 관측치의 평균적인 거리를 보기위해 )


그렇다면 왜 제곱하는 것일까?

그 이유는 마이너스 값 때문이다.

평균보다 큰 관측치의 경우 제곱을 하지 않으면 마이너스 값이 나오기 때문에 거리를 제대로 알 수 없게된다.

분산을 통해서 관측치들이 평균에서 떨어진 거리를 알 수 있었다.

그러나 분산은 제곱을 하기 때문에 값이 크게나오는 경향이 있다.


그래서 표준편차라는 것이 있다.

표준편차는 분산에 제곱근을 씌운것으로

제곱의 영향을 없애준다.

이제 여러분들은 분산이 무엇인지 표준편차가 무엇인지 알게 되었다.


다시 돌아가서 위의 설명을 다시 해석하자면

단일표본 t-test는 모집단 (2030 대한민국 남성 전체)의

분산과 표준편차를 알지 못하는 상황에서

모집단 (전체)에서 추출한 표본 (일부)의 평균을 사용하여

연구자가 이론적 또는 경험적 근거에 의해 설정한 특정한 수와 비교하여 검정한다.

라고 할 수 있겠다.

저 설명을 토대로 오늘 우리가 할 일은


'대한민국 2030 남성 (모집단) 의 평균키를 175cm (특정한 수)라고 볼 수 있을까?' 이다


통계청 홈페이지에 가면 연령별로 평균 키가 나와있다. 그러나 통계청의 자료 또한 전수조사가 아니기에 모집단이라 할 수 없고,

데이터 하나하나의 값 없이 통계 결과값만 존재 하기 때문에 육군 신체 측정 데이터를 사용해서 알아보겠다.


단일표본 t-test를 하기위한 조건

단일표본 t-test를 하기위한 조건

아참, t-test를 하기 위해서는 조건이 있다.


1) 먼저 검증하고자 하는 자료의 유형이 연속적이어야 한다는 점.

ex)

추출한 데이터가 정규성을 만족해야 한다는점이다.

자료의 유형이 연속적이여야 한다는 것은

순위가 1등, 2등 인 것처럼 딱딱 끊어져서는 안된다는 것이다.

ex)

(설문조사의 경우 만족도를 평균내어 검증한다면 가능하다. ex 남성의 만족도 평균 2.5점)

2) 다음으로 자료가 정규분포여야한다. (자료?에 대해)

이것은 정규분포의 모양을 하고있냐는 것이다.

정규분포는 다음과 같이 생겼다.

위의 그림이 정규분포이다.



조건 확인

조건 확인

먼저 키에 대한 자료로써, 첫번째 연속형 자료라는 점을 만족했다.

그렇다면 두번째, 정규성을 보자.

위 표본의 분포를 봤을 때

어떤가 정규 분포의 모양을 하고있는가? 흠잡을 곳 없다.


이 경우 167983개의 데이터로 충분히 많은 데이터이다.

적당히 많은 데이터의 개수는 약 30개로

이 이상이되면 중심극한정리에 의해 모집단의 분포에 관계없이 표본평균의 분포는 정규분포 형태를 따른다고 가정한다.


중심극한정리를 정말 간단하게 짚고 넘어가겠다.

표본의 크기가 증가함에 따라 이 표본평균은 정규분포에 가까워 진다는 것이 중심극한 정리이다.

그래서 표본의 개수, 크기가 30개 이상이 되면 거의 모든 표본평균의 분포는 정규분포 형태를 따른다고 가정할 수 있다.


데이터의 개수가 많지 않을 때는 정규성 검사를 하기 위해서는

샤피로윌크 검정이나 콜모고로프-스미르노프 검정 이라는 것도있다.(이런게 있다는 것만 일단 알아두자)

여기서는 생략하겠다.


다시 단일표본 t-test

t-test 설명


다시 단일표본 t-test로 돌아와서

이 test는 가설을 검증하는 과정이다.

다시 말해서 내가 세운 가설 (평균 가격에 변화가 생겼나?, 평균에 차이가 생겼나?) 을 검증하는 것이다.


이 경우 귀무가설은 대한민국 2030 남성의 평균키는 175cm이다. 이고,

귀무가설이란 null hypothesis, 영가설, $H_{0}$ (영가설 이라서 0이 붙는다) 즉 기본이 되는 가설이라는 의미로 이해하면 되겠다.

보통 귀무가설은 확실한 증거가 없을 때 우리가 받아 들여야하는 일반적 통념에 대한 가설로 설정한다.


대립가설이 존재하는데 이번 경우에는 2030 남성의 평균키는 175cm라고 할수 없다. 로 자동적으로 정해진다.

보통 대립가설은 귀무가설에 반대되는 가설로 설정한다.

귀무가설 말은 어렵지만 실상 까보면 어렵지않다!

statistic과 p-value

t-test를 실행 했을 때의 결과로 두 값이 나온다.

먼저 statistic 즉 통계량은 표본을 통해 특정한 함수를 계산한 것으로 표본의 몇몇 특징을 수치화한 값이다.

t-test의 경우 통계량은 t통계량은 다음과 같이 나타낸다.

$t = \displaystyle \frac{\overline{x} - \mu_{0}}{s_{\overline{x}}}$

이 통계량을 보면서 해석해보자.

저 식의 뜻은 평균(기준) $\overline{x}$ 와 $\mu_{0}$ 사이의 차이가 표준오차의 몇배인가를 나타낸다.(갈수록 말이 어려워진다.)

여기서 $\mu_{0}$는 175cm 으로 이해하면 된다. 비교하고자 하는 알고 있던(설정 한) 값!

$\overline{x}$ 는 현재 표본 데이터의 평균으로, 원래 알고있던 값에 비교하기 위해 내가 가져온 값이다.

표준 오차라는 것은 오차에 루트를 씌운 것인데 오차는 표본(추정값) - 모집단(전체)의 제곱이다.
(쉽게 말해서 내가 추출한 표본이 얼마나 참값과 다르냐 이다)


다시 저 위의 식을 해석하면 내가 비교하고자 하는 값과 내가 가져온 데이터의 평균간 차이가 얼마나 크게 날까라고 해석 할 수 있다.

고로 분자, 평균 값 간의 차이가 커지면 t 값도 커지고

t 통계량이 크다는 것은 '두 평균이 같다고 할 수 없다', '두 평균 간 차이가 있다', 'not equal' 의 의미를 가진다.

이 t 통계량에 의해 p-value가 계산되는데

p-value는 쉽게 귀무가설을 지지하는 정도라고 이해 할 수 있다.

p-value가 높으면 귀무가설 즉 평균에 차이가 없다 를 지지하는 정도를 나타낸것이다.


근데 정도라는 것에는 기준이 필요하다.

그래서 보통 유의수준 5%에서 라는 말을 하곤 하는데


유의수준이란 흔히들 $\alpha$로 나타내고 이것의 의미는

실제로는 귀무가설이 맞는데 귀무가설이 틀렸다고 말할 확률이다.

여기에서는 경유 값의 차이가 없는데 차이가 있다고 할 확률이 5%라는 말이다.
(표본으로 추출하다보니 전체에 대해 100% 확신 할 수가 없기 떄문에 5% 정도 틀릴 수도 있다는 의미)


그렇기 때문에 귀무가설을 지지하는 정도 (p-value)가

귀무가설이 맞는데 틀렸다고 오류를 범활 확률 (유의수준 5%)보다 크다면

귀무가설을 채택한다!(여기서는 평균의 차이가 없다가 귀무 가설이었다.)


단일표본 t-test 적용

적용

조건도 다 만족했고 해석하는 법도 배웠으니

간단한 한 줄로 test 해보자.

일단 표본(추출한 데이터)에서 키의 평균을 확인해 보자

data['신장'].values.mean()



현재의 표본으로 계산한 평균은 약 174.69cm

처음 설정 값 175cm를 $\mu_{0}$ 로 하여 t-test를 실행한다.

t_test = scipy.stats.ttest_1samp(data['신장'].values.mean(),175)



위에서 배운대로 해석 해보자면

t 통계량을 토대로 나온 p-value값이 유의수준 5%에서

유의 수준보다 작기 때문에 귀무가설 기각.

즉 2030 성인 남성의 평균키를 175cm와 통계적으로 같다고 볼 수 없다.

이 결과는 표본 수가 많기 때문에 '174cm랑 175cm랑 어떻게 같을 수가 있어? 이걸 왜 해?' 라고 당연하게 생각할수 있다.

(데이터가 이정도 많으면 t-test가 제대로 작동하지 않을 수도 있고 t-test를 할 필요가 없긴하다.)

그렇기 때문에 하나의 가정을 들어 t-test의 본 면모를 보자.

지금은 육군 훈련소 00연대 0생활관 내부...

23번 훈련병과 24번 훈련병이 대화를 하고 있다.

"우리 소대를 보니까 다들 키가 큰게 요즘 한국 2030 성인 남성 키 평균이 175cm는 될 것같다."

"내가 통계를 좀 배웠으니까 한번 우리 소대 28명키를 표본으로 t-test해볼게!"

sample = data_cm.sample(n=28,random_state=4)
fig = px.histogram(sample)
fig.show()

해당 코드와 그래프는 본래의 육군 신체 측정 데이터에서 28개의 표본을 뽑은것이다.

생활관 내부인원들의 키만을 가지고 조사해서 결과 값을 본다면 어떻게 나올까

이번에는 데이터의 개수가 중심극한정리를 쓸수 있을 만큼 많지않다.

고로 샤피로 윌크 검정을 통해서

뽑은 표본이 정규성을 만족하는지 알아보자


p-value 가 0.05(%5)이상이기 때문에 정규성 검사를 만족했다.

다음으로 t-test를 실행하겠다.



위의 결과 값을 해석해 보면 귀무가설을 지지하는 정도인 p-value 가 0.18로

귀무가설이 맞는데 틀렸다고 할 확률 5%, 0.05 보다 크기 때문에

대한민국 2030 성인 남성의 평균키를 175cm라고 말할 수 있게된다.


174cm의 평균을 가진 표본은 175cm라고 할 수 없다고 하고

173cm의 평균을 가진 표본은 175cm라고 할 수 있다라는 결과..


이러한 차이를 보이는 이유는 무엇일까

결국 확률의 차이라고 생각한다.


위 표본이 많았던 경우는

저렇게 16만명의 데이터를 확인하고 평균이 174cm라는 것을 봤을 때

모집단(전체)의 평균이 175cm일 확률이 낮기 때문이고


28명의 표본을 가지고 전체를 예상해보면

모집단(전체)의 평균이 175cm일 가능성이 있기 때문이다.

그래서 작은 표본으로 모집단의 평균을 확률적으로 추론하는

t-test, 아주 쓸만한 도구인 것은 자명하나 너무 맹신하지는 말자.

처음 이런 도구를 발견한 사람은 어떻게 발견했을까····


부록

부록

여담

한 회사원이 있었다.

그는 통계 기법을 알아내고 학회에 보고했으나, 회사원 신분이기 때문에 본명을 쓰지 못한다.

그가 선택한 필명은 Student.

이후에 그가 발견한 통계적 방법론은 Student분포 혹은 T분포라고 불린다.


이 이야기는 t분포의 유래로 유명한 윌리엄 고셋의 이야기이다.

우리는 이번에 t-test를 적용해 봤는데 해당 검정은

t 분포표를 사용해서 귀무가설을 채택할지 기각할지 결정한다.


해당 검정 방법은 윌리엄 고셋이 맥주 홉의 이상적인 비율을 찾기위해

생산하는 맥주를 전수조사 할 수 없었기 때문에 적은 양의 표본으로

테스트하기 위해 발견해 냈다.


당시 기네스 맥주 회사원 이었던 그는 개인적 신분으로 활동 할 수 없어서

Student라는 필명으로 연구 성과를 학회에 발표했다.

훗날 로널드 피셔라는 통계학자가 이 분포를 Student 분포, t 분포 라고 부르면서

현재까지 이어지게 되었다.


자료에 대해

t-test의 기본가정으로 위캐백과에 다음과 같이 나온다.

Although the parent population does not need to be normally distributed, the distribution of the population of sample means $\large \overline{x}$ is assumed to be normal. - 위키백과

$\large \overline{x}$ follows a normal distribution -위키백과

해석하면 표본의 평균이 정규분포를 따라야 한다고 말한다.

표본의 모집단이 정규분포를 이루고 있다. -https://m.blog.naver.com/y4769/221896138434

한 블로그에서는 모집단이 정규분포를 따라야 한다고 한다.

또 다른 곳에서는

독립변수에 따른 종속변수는 정규분포를 만족해야 함. -http://blog.naver.com/PostView.nhn?blogId=y4769&logNo=220087642891

이 블로그의 내용을 읽어봤을 때 표본이 정규분포를 따라야한다로 이해했다.

정규성 검정에 대한 나의 생각은 다음과 같다.


t-test의 가정은 모집단이 정규분포일때 사용하는 것이기 때문에 모집단의 정규분포를 가정으로한다.

모집단의 정규분포를 알아야하는데 모를 경우 표본을 통해 정규성을 확인 할 수 있다.

'모집단에서 추출한 표본이 편향 되지않게 뽑은 거라면

표본이 정규분포를 따를 때 모집단 또한 정규분포를 따르기 때문에 표본으로 모집단의 정규분포를 확인할 수 있다'

로 이해했다.


정규성 검정에 대해 정확히 아시는 분들의 피드백을 기다린다. 나의 가정일 뿐이다.


데이터 출처 : 공공데이터 포털 육군 신체 측정 자료

참고 서적: 통계학의 이해(이용구), 경영경제통계학(김양렬)

참고 사이트 :